<?php
final class Session {
	public $data = array();
			
  	public function __construct() {		
		if (!session_id()) {
			ini_set('session.use_cookies', 'On');
			ini_set('session.use_trans_sid', 'Off');
			
			session_set_cookie_params(0, '/');
			session_start();
		}
	
		$this->data =& $_SESSION;
	}

    public function has($key) {
        return isset($this->data[$key]);
    }

    public function get($key = null) {
        if(!is_null($key))
            return isset($this->data[$key]);

        return $_SESSION;
    }

    function __set($name, $var){
       // $this->data[$name] = $var;
        $_SESSION[$name] = $var;
    }

    function __get($name){
        $var = null;

        if( $this->has($name) )
            $var = $this->data[$name];
        elseif (isset($_SESSION[$name]))
            $var = $_SESSION[$name];

        return $var;
    }
}
?>